home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_32_shape tools.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  11.9 KB  |  202 lines

  1. global gSize, gCast, gVariable, gFirstColor, gSecondColor, gLineSize, gShapeType, myCurrentImage, myCurrentPreview
  2.  
  3. on toolOutlineShape
  4.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  5.   startX = (the mouseH - sprite(1).left) * 2 / gVariable / 2
  6.   startY = (the mouseV - sprite(1).top) * 2 / gVariable / 2
  7.   myShape = rect(0, 0, 0, 0)
  8.   myStartImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  9.   myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  10.   myCurrentPreview = duplicate(member("preview", gCast).image)
  11.   repeat while the mouseDown
  12.     myCurrentImage.copyPixels(myStartImage, myStartImage.rect, myStartImage.rect)
  13.     if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  14.       myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, startX + 1, startY + 1)
  15.     else
  16.       if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) >= startX) then
  17.         myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  18.       else
  19.         if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) >= startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  20.           myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  21.         else
  22.           if ((the mouseV - sprite(1).top) * 2 / gVariable / 2) = startY then
  23.             myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  24.           else
  25.             if ((the mouseH - sprite(1).left) * 2 / gVariable / 2) = startX then
  26.               myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  27.             else
  28.               myShape = rect(startX, startY, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  29.             end if
  30.           end if
  31.         end if
  32.       end if
  33.     end if
  34.     if (gShapeType = #rect) and ((myShape.width < (gLineSize * 2)) or (myShape.height < (gLineSize * 2))) then
  35.       myCurrentImage.fill(myShape, [#shapeType: gShapeType, #lineSize: 0, #color: gFirstColor])
  36.     else
  37.       myCurrentImage.draw(myShape, [#shapeType: gShapeType, #lineSize: gLineSize, #color: gFirstColor])
  38.     end if
  39.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  40.     updateStage()
  41.     put myShape.width.abs into field "dimension status W"
  42.     put myShape.height.abs into field "dimension status H"
  43.     fnUpdatePreview()
  44.   end repeat
  45.   sprite(35).pState = 0
  46.   sendSprite(35, #setMember)
  47.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  48.   myStartImage = VOID
  49.   myCurrentImage = VOID
  50.   myCurrentPreview = VOID
  51.   put EMPTY into field "dimension status W"
  52.   put EMPTY into field "dimension status H"
  53. end
  54.  
  55. on toolFilledShape
  56.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  57.   startX = (the mouseH - sprite(1).left) * 2 / gVariable / 2
  58.   startY = (the mouseV - sprite(1).top) * 2 / gVariable / 2
  59.   myShape = rect(0, 0, 0, 0)
  60.   myStartImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  61.   myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  62.   myCurrentPreview = duplicate(member("preview", gCast).image)
  63.   repeat while the mouseDown
  64.     myCurrentImage.copyPixels(myStartImage, myStartImage.rect, myStartImage.rect)
  65.     if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  66.       myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, startX + 1, startY + 1)
  67.     else
  68.       if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) >= startX) then
  69.         myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  70.       else
  71.         if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) >= startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  72.           myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  73.         else
  74.           if ((the mouseV - sprite(1).top) * 2 / gVariable / 2) = startY then
  75.             myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  76.           else
  77.             if ((the mouseH - sprite(1).left) * 2 / gVariable / 2) = startX then
  78.               myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  79.             else
  80.               myShape = rect(startX, startY, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  81.             end if
  82.           end if
  83.         end if
  84.       end if
  85.     end if
  86.     if (gShapeType = #rect) and ((myShape.width < (gLineSize * 2)) or (myShape.height < (gLineSize * 2))) then
  87.       myCurrentImage.fill(myShape, [#shapeType: gShapeType, #lineSize: 0, #color: gFirstColor])
  88.     else
  89.       myCurrentImage.fill(myShape, [#shapeType: gShapeType, #lineSize: gLineSize, #color: gSecondColor, #bgColor: gFirstColor])
  90.     end if
  91.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  92.     updateStage()
  93.     put myShape.width.abs into field "dimension status W"
  94.     put myShape.height.abs into field "dimension status H"
  95.     fnUpdatePreview()
  96.   end repeat
  97.   sprite(35).pState = 0
  98.   sendSprite(35, #setMember)
  99.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  100.   myStartImage = VOID
  101.   myCurrentImage = VOID
  102.   myCurrentPreview = VOID
  103.   put EMPTY into field "dimension status W"
  104.   put EMPTY into field "dimension status H"
  105. end
  106.  
  107. on toolSolidShape
  108.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  109.   startX = (the mouseH - sprite(1).left) * 2 / gVariable / 2
  110.   startY = (the mouseV - sprite(1).top) * 2 / gVariable / 2
  111.   myShape = rect(0, 0, 0, 0)
  112.   myStartImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  113.   myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  114.   myCurrentPreview = duplicate(member("preview", gCast).image)
  115.   repeat while the mouseDown
  116.     myCurrentImage.copyPixels(myStartImage, myStartImage.rect, myStartImage.rect)
  117.     if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  118.       myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, startX + 1, startY + 1)
  119.     else
  120.       if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) >= startX) then
  121.         myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  122.       else
  123.         if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) >= startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  124.           myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  125.         else
  126.           if ((the mouseV - sprite(1).top) * 2 / gVariable / 2) = startY then
  127.             myShape = rect(startX, (the mouseV - sprite(1).top) * 2 / gVariable / 2, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, startY + 1)
  128.           else
  129.             if ((the mouseH - sprite(1).left) * 2 / gVariable / 2) = startX then
  130.               myShape = rect((the mouseH - sprite(1).left) * 2 / gVariable / 2, startY, startX + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  131.             else
  132.               myShape = rect(startX, startY, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  133.             end if
  134.           end if
  135.         end if
  136.       end if
  137.     end if
  138.     myCurrentImage.fill(myShape, [#shapeType: gShapeType, #lineSize: 0, #color: gFirstColor])
  139.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  140.     updateStage()
  141.     put myShape.width.abs into field "dimension status W"
  142.     put myShape.height.abs into field "dimension status H"
  143.     fnUpdatePreview()
  144.   end repeat
  145.   sprite(35).pState = 0
  146.   sendSprite(35, #setMember)
  147.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  148.   myStartImage = VOID
  149.   myCurrentImage = VOID
  150.   myCurrentPreview = VOID
  151.   put EMPTY into field "dimension status W"
  152.   put EMPTY into field "dimension status H"
  153. end
  154.  
  155. on toolStraightLine
  156.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  157.   startX = (the mouseH - sprite(1).left) * 2 / gVariable / 2
  158.   startY = (the mouseV - sprite(1).top) * 2 / gVariable / 2
  159.   myShape = rect(0, 0, 0, 0)
  160.   myStartImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  161.   myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  162.   myCurrentPreview = duplicate(member("preview", gCast).image)
  163.   repeat while the mouseDown
  164.     myCurrentImage.copyPixels(myStartImage, myStartImage.rect, myStartImage.rect)
  165.     if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  166.       myShape = rect(startX + 1, startY + 1, (the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2)
  167.     else
  168.       if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) < startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) >= startX) then
  169.         myShape = rect(startX, startY + 1, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, (the mouseV - sprite(1).top) * 2 / gVariable / 2)
  170.       else
  171.         if (((the mouseV - sprite(1).top) * 2 / gVariable / 2) >= startY) and (((the mouseH - sprite(1).left) * 2 / gVariable / 2) < startX) then
  172.           myShape = rect(startX + 1, startY, (the mouseH - sprite(1).left) * 2 / gVariable / 2, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  173.         else
  174.           if ((the mouseV - sprite(1).top) * 2 / gVariable / 2) = startY then
  175.             myShape = rect(startX, startY + 1, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, (the mouseV - sprite(1).top) * 2 / gVariable / 2)
  176.           else
  177.             if ((the mouseH - sprite(1).left) * 2 / gVariable / 2) = startX then
  178.               myShape = rect(startX + 1, startY, (the mouseH - sprite(1).left) * 2 / gVariable / 2, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  179.             else
  180.               myShape = rect(startX, startY, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 1, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 1)
  181.             end if
  182.           end if
  183.         end if
  184.       end if
  185.     end if
  186.     myCurrentImage.draw(myShape, [#shapeType: #line, #lineSize: gLineSize, #color: gFirstColor])
  187.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  188.     updateStage()
  189.     put myShape.width.abs into field "dimension status W"
  190.     put myShape.height.abs into field "dimension status H"
  191.     fnUpdatePreview()
  192.   end repeat
  193.   sprite(35).pState = 0
  194.   sendSprite(35, #setMember)
  195.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  196.   myStartImage = VOID
  197.   myCurrentImage = VOID
  198.   myCurrentPreview = VOID
  199.   put EMPTY into field "dimension status W"
  200.   put EMPTY into field "dimension status H"
  201. end
  202.